前端部分做好了,接下來就是做後端的部分。
目標:
步驟:
step1. 加上Action,注意要加上  [ValidateAntiForgeryToken],來驗證前端的輸入。
[HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> GetMoreArticle()
        {
            var nextArticleId = TempData["ArticleLastId"];
            if (TempData["ArticleLastId"] != null && int.TryParse(TempData["ArticleLastId"]!.ToString(), out var i))
            {
                var model = await _article.GetMoreArticleList(i);
                var result = new List<UpdateArticleViewModel>();
                if (model is not null && model.Count > 0)
                {
                    result = model.Select(x => new UpdateArticleViewModel
                    {
                        Id = x.Id,
                        ArticleContent = x.ArticleContent,
                        Title = x.Title,
                        IsDelete = x.IsDelete
//注意這裡Take(2)
                    }).Take(2).ToList();
                    TempData["ArticleLastId"] = result.Last().Id.ToString();
                }
                return Json(result);
            }
            return Json(string.Empty);
        }
note:
1.注意這裡Take(2)的用法是設計使用者可以撈出接下來有多少文章出來。
(你也可以改成10或是100)
step2. ArticleService.cs 補上撈取資料庫的程式碼
public async Task<IList<Article>> GetMoreArticleList(long id)
        {
            return await _db.Articles
                .Where(x => x.Id < id)
                .OrderByDescending(x => x.Id)
                .ToListAsync();
        }
做好後就可以看到,可以按按鈕新增下兩篇的文章連結。